             package com.java.diagnostics.visualizer.gc.solarissupport.parser;
             
             import com.java.diagnostics.visualizer.data.SourceData;
             import com.java.diagnostics.visualizer.data.axes.YDataAxis;
             import com.java.diagnostics.visualizer.exceptions.GCAndMemoryVisualizerException;
             import com.java.diagnostics.visualizer.gc.solarissupport.util.Messages;
             import com.java.diagnostics.visualizer.metadata.TupleMetaData.TableField;
             import com.java.diagnostics.visualizer.metadata.TupleMetaData.TableType;
             import com.java.diagnostics.visualizer.parser.vgc.VGCDataManager;
             import com.java.diagnostics.visualizer.parser.vgc.constants.VGCAxes;
             import com.java.diagnostics.visualizer.properties.OutputProperties;
             import com.java.diagnostics.visualizer.sources.Source;
             import java.util.Map;
             import java.util.logging.Logger;
             
             public class OracleDataManager
               extends VGCDataManager
             {
               static
               {
                 String[] pauseTupleNames = { "OracleVGCLabels.count.time", "OracleVGCLabels.cleanup.time", 
                   "OracleVGCLabels.stop.the.world.pause" };
                 String[] heapTupleNames = { "OracleVGCLabels.used.eden.before", "OracleVGCLabels.used.eden.after", 
                   "OracleVGCLabels.eden.size.before", "OracleVGCLabels.eden.size.after", "OracleVGCLabels.used.survivor.before", 
                   "OracleVGCLabels.used.survivor.after", "OracleVGCLabels.used.heap.before", "OracleVGCLabels.used.heap.after", 
                   "OracleVGCLabels.heap.size.before", "OracleVGCLabels.heap.size.after", "OracleVGCLabels.free.heap.after", 
                   "OracleVGCLabels.used.eden.survivor.before", "OracleVGCLabels.used.eden.survivor.after" };
                 String[] genericTupleNames = new String[0];
                 
                 String[] arrayOfString1 = pauseTupleNames;int j = pauseTupleNames.length; for (int i = 0; i < j; i++) { String name = arrayOfString1[i];
                   tupleNamesToFactories.put(name, pauseFactory);
                 }
                 for (String name : heapTupleNames) {
                   tupleNamesToFactories.put(name, heapFactory);
                 }
                 for (String name : genericTupleNames) {
                   tupleNamesToFactories.put(name, genericfactory);
                 }
                 
                 tupleNamesToTableType.put("OracleVGCLabels.used.eden.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.eden.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.eden.size.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.eden.size.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.survivor.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.survivor.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.heap.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.heap.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.heap.size.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.heap.size.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.count.time", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.cleanup.time", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.free.heap.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.eden.survivor.before", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.used.eden.survivor.after", TableType.ARITHMETIC);
                 tupleNamesToTableType.put("OracleVGCLabels.stop.the.world.pause", TableType.ARITHMETIC);
                 
                 tupleNamesToTableFields.put("OracleVGCLabels.used.eden.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.eden.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.eden.size.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.eden.size.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.survivor.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.survivor.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.heap.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.heap.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.heap.size.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.heap.size.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.count.time", new TableField[] {
                   TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.cleanup.time", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.free.heap.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.eden.survivor.before", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.used.eden.survivor.after", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
                 tupleNamesToTableFields.put("OracleVGCLabels.stop.the.world.pause", 
                   new TableField[] { TableField.MEAN, TableField.MIN, TableField.MAX });
               }
               
               public OracleDataManager(Source source, SourceData data, OutputProperties properties)
               {
                 this.source = source;
                 this.data = data;
                 this.properties = properties;
                 
                 createYAxes();
               }
               
               protected void createYAxes() {
                 super.createYAxes();
                 try {
                   createEdenBeforeAxis();
                   createEdenAfterAxis();
                   createSurvivorAxis();
                   createHeapBeforeAxis();
                   createHeapAfterAxis();
                   createTimeAxis();
                 } catch (GCAndMemoryVisualizerException e) {
                   TRACE.warning(e.toString());
                 }
               }
               
               protected String getLabel(String name) {
                 return Messages.getString(name);
               }
               
               private void createEdenBeforeAxis() throws GCAndMemoryVisualizerException {
                 YDataAxis edenBeforeAxis = VGCAxes.prepareHeapAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.used.eden.before", "OracleVGCLabels.eden.size.before" };
                 mapTupleNamesToAxis(names, edenBeforeAxis);
               }
               
               private void createEdenAfterAxis() throws GCAndMemoryVisualizerException {
                 YDataAxis edenAfterAxis = VGCAxes.prepareHeapAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.used.eden.after", "OracleVGCLabels.eden.size.after" };
                 mapTupleNamesToAxis(names, edenAfterAxis);
               }
               
               private void createSurvivorAxis() throws GCAndMemoryVisualizerException {
                 YDataAxis survivorsAxis = VGCAxes.prepareHeapAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.used.survivor.before", "OracleVGCLabels.used.survivor.after" };
                 mapTupleNamesToAxis(names, survivorsAxis);
               }
               
               private void createHeapBeforeAxis() throws GCAndMemoryVisualizerException {
                 YDataAxis heapBeforeAxis = VGCAxes.prepareHeapAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.used.heap.before", "OracleVGCLabels.heap.size.before" };
                 mapTupleNamesToAxis(names, heapBeforeAxis);
               }
               
               private void createHeapAfterAxis() throws GCAndMemoryVisualizerException {
                 YDataAxis heapAfterAxis = VGCAxes.prepareHeapAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.used.heap.after", "OracleVGCLabels.heap.size.after" };
                 mapTupleNamesToAxis(names, heapAfterAxis);
               }
               
               private void createTimeAxis() {
                 YDataAxis timeAxis = VGCAxes.prepareTimeAxis(this.properties);
                 
                 String[] names = { "OracleVGCLabels.count.time", "OracleVGCLabels.cleanup.time", "OracleVGCLabels.stop.the.world.pause" };
                 mapTupleNamesToAxis(names, timeAxis);
               }
             }


